home *** CD-ROM | disk | FTP | other *** search
/ Programming in Microsoft Windows with C# / Programacion en Microsoft Windows con C#.iso / Codigo / Pinceles y lápices / RectangleLinearGradientBrush / RectangleLinearGradientBrush.cs next >
Encoding:
Text File  |  2002-06-18  |  1.8 KB  |  55 lines

  1. //-----------------------------------------------------------
  2. // RectangleLinearGradientBrush.cs ⌐ 2001 by Charles Petzold
  3. //-----------------------------------------------------------
  4. using System;
  5. using System.Drawing;
  6. using System.Drawing.Drawing2D;
  7. using System.Windows.Forms;
  8.  
  9. class RectangleLinearGradientBrush: PrintableForm
  10. {
  11.      MenuItem miChecked;
  12.  
  13.      public new static void Main()
  14.      {
  15.           Application.Run(new RectangleLinearGradientBrush());
  16.      } 
  17.      public RectangleLinearGradientBrush()
  18.      {
  19.           Text = "Pincel degradado lineal en rectßngulo";
  20.  
  21.           Menu = new MainMenu();
  22.           Menu.MenuItems.Add("&Modo-Degradado");
  23.  
  24.           foreach (LinearGradientMode gm in 
  25.                               Enum.GetValues(typeof(LinearGradientMode)))
  26.           {
  27.                MenuItem mi = new MenuItem();
  28.                mi.Text     = gm.ToString(); 
  29.                mi.Click   += new EventHandler(MenuGradientModeOnClick);
  30.                Menu.MenuItems[0].MenuItems.Add(mi);
  31.           }
  32.           miChecked = Menu.MenuItems[0].MenuItems[0];
  33.           miChecked.Checked = true;
  34.      }
  35.      void MenuGradientModeOnClick(object obj, EventArgs ea)
  36.      {
  37.           miChecked.Checked = false;
  38.           miChecked = (MenuItem) obj;
  39.           miChecked.Checked = true;
  40.           Invalidate();
  41.      }
  42.      protected override void DoPage(Graphics grfx, Color clr, int cx, int cy)
  43.      {
  44.           Rectangle rectBrush = 
  45.                          new Rectangle(cx / 4, cy / 4, cx / 2, cy / 2);
  46.  
  47.           LinearGradientBrush lgbrush = 
  48.                new LinearGradientBrush(
  49.                          rectBrush, Color.White, Color.Black,
  50.                          (LinearGradientMode) miChecked.Index);
  51.          grfx.FillRectangle(lgbrush, 0, 0, cx, cy);
  52.          grfx.DrawRectangle(Pens.Black, rectBrush);
  53.      }
  54. }
  55.